// // Copyright (c) 2009 All Right Reserved // // vl // // 2009-01-01 // Contains ... using JetBrains.Annotations; using LargoCommon.Abstract; using LargoCommon.Localization; namespace LargoCommon.Music { /// /// Musical Block Wrap. /// public class MusicalBlockWrap { /// /// Initializes a new instance of the class. /// /// The given block. public MusicalBlockWrap(MusicalBlock givenBlock) { this.Block = givenBlock; this.HarmonicModel = HarmonicModel.GetNewModel(givenBlock); if (this.HarmonicModel == null) { return; } ProcessLogger.Singleton.SendLogEvent(null, LocalizedMusic.String("Analyzing musical lines..."), 0); this.MelodicModel = MelodicModel.GetNewModel("Inner", givenBlock); this.RhythmicModel = RhythmicModel.GetNewModel("Inner", givenBlock); var melodicAnalyzer = new MelodicAnalyzer(); melodicAnalyzer.AnalyzeMusicalLines(this.MelodicModel, this.RhythmicModel, givenBlock); var model = HarmonicModel.GetNewModel(givenBlock); var orchestration = new MusicalOrchestration(givenBlock); //// model.SourceMusicalBlock, ObjectName = model.FullName, this.Orchestration = orchestration; } #region Public properties - Models /// /// Gets or sets the harmonic model. /// /// /// The harmonic model. /// public HarmonicModel HarmonicModel { get; set; } /// /// Gets or sets the rhythmic model. /// /// /// The rhythmic model. /// public RhythmicModel RhythmicModel { get; set; } /// /// Gets or sets the melodic model. /// /// /// The melodic model. /// public MelodicModel MelodicModel { get; set; } #endregion /// /// Gets or sets The musical style /// /// /// The style. /// public MusicalStyle Style { get; set; } /// /// Gets or sets the orchestration. /// /// /// The orchestration. /// public MusicalOrchestration Orchestration { get; set; } /// /// Gets or sets the harmony. /// /// /// The harmony. /// [UsedImplicitly] public MusicalHarmony Harmony { get; set; } /// /// Gets or sets the block. /// /// /// The block. /// public MusicalBlock Block { get; set; } } }